linux操作系统介绍(了解)

[TOC]

参考链接:

linux系统介绍: https://www.cnblogs.com/zhjblogs/p/16179951.html

一、Linux简介

(1) 官方介绍

  1. ==Linux==,全称GNU/Linux,是一种==免费使用==和==自由传播==的类==UNIX==操作系统
  2. 其内核由==林纳斯==·本纳第克特·托瓦兹于1991年10月5日首次发布
  3. 它主要受到==Minix==和==Unix==思想的启发,是一个基于==POSIX==的==多用户==、==多任务==、支持多线程和多CPU的操作系统。
  4. 它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。
  5. Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多==用户网络操作系统==。
  6. Linux有上百种不同的发行版本,如基于社区开发的debian、archlinux( [ɑːtʃ]),和基于商业开发的[Red Hat Enterprise Linux(红帽子)](https://baike.baidu.com/item/Red Hat Enterprise Linux/10770503)、SUSE( [ˈsuːzi] )、[Oracle Linux](https://baike.baidu.com/item/Oracle Linux/6876458)等。

(2) Linux本质

  1. 操作系统:

    • 众所周知,计算机由一堆硬件组成,为了有效地控制这些硬件资源,于是乎就有了操作系统的诞生。操作系统不仅为有效控制硬件资源的分配提供了便利,还提供了一系列系统调用接口便于开发人员使用。
    • 那么在日常生活中常见的操作系统一般有==Windows、Linux、MacOS==(苹果电脑系统)。
  2. Unix和Windows系统

    1. Linux和MacOS本质上都是属于类Unix操作系统
    2. Windows则与两者相比有所不同,Windows系统是由DOS(Disk Operating System)系统演变而来的图形化操作系统。(MacOS也是一种图形化操作系统。)
  3. Linux系统

    • Linux的代码是==开源==的,它的==内核代码==是开放给开发者使用的。大家就可以在内核源代码的基础上依据自己的需求添加一些专属的==定制化的内容==,但是需要遵循==某些协议==。
    • Linux是一个大家庭,拥有许多不同的发行版。
    • 常见的有OpenSUSE、RedHat、Debian、ArchLinux、==Ubuntu==( [ʊˈbʊntuː]乌班图)、==Centos== 等等。
    • 总的来说,Linux就是一个类Unix操作系统,并且应用十分广泛,并且家族十分庞大,用途遍布我们日常生活的方方面面。

二、Unix及其分支

在聊Linux之前,我觉得非常有必要说一下Unix。因为Unix十分强大。

(一)什么是Unix?

  1. 道生一、一生二、二生三、三生万物………

  2. 与人类的历史相比,软件发展的历史很短,如果说要给软件的历史找一个基点,那么这个基点就是==Unix==。Unix是什么?它是计算机历史上的一座丰碑,一种文化。

  3. 如果没有它,谷歌、脸书、亚马逊将不复存在,Office办公软件也要晚很多年才会出现,苹果电脑也不再优雅,因为没有了MacOS,再到现在的智能家居、物联网,可以说Unix已经成为了这个时代的不可磨灭的基因。

  4. 那么说了这么多,我们给Unix下一个比较客观的定义:那就是==Unix==是一个==多用户、多任务的操作系统==,遵循简洁至上、提供机制而非原则的策略。

(二)Unix的历史及类Unix系统

如果说到Unix的发展历史,不得不提到两位大佬:他们就是B语言的发明者肯 ==汤姆森==和==C语言之父==丹尼斯 里奇。

在说Unxi如何创造之前,我们需要先对自人类历史上第一台计算机诞生开始的计算机发展过程有一个大致的了解。

(1) 批处理操作系统与兼容分时操作系统(CTSS)

  1. 在早期,计算机并不像现在一样,广泛的平民化,任何人都有能力购买。早期的计算机一般是用作==军事或者科技用途==,一般人根本买不起,也用不起。不仅如此,早期的计算机运行速度也不快,操作方式单一。

  2. 那个时候的操作系统被称为==批处理操作系统==,即那个时候的输入设备只有==读卡机==,输出设备只有==打印机==,用户无法与操作系统进行交互。那么这个时候就会出现一个问题,某个机构或者学校只有一台主机,多人等待使用,那怎么提高效率呢?

  3. 于是兼容==分时操作系统==应运而生,它可以通过大型主机通过提供数个终端以连接进入主机,利用主机资源进行运算工作。示意图如下所示:

    批处理:

    img

    分时操作系统:

    img

  4. 此时虽然减少了等待的时间,但是在空间方面,往往大型的先进的主机也就大概能够提供30个终端左右,这明显无法满足日益增长的运算需求。再加之,这些终端也就只有输入与输出这些单一的功能,并不能够安装软件与进行相关的计算。

  5. 为了强化这种操作系统的功能,以便让主机资源能够更好地提供给更多的用户使用。1969年前后,MIT(麻省理工学院)打算研制一种新型的计算机,叫做Multics。考虑到这项工作的复杂性,MIT拉上了当时的贝尔实验室、通用电气这两家。一个是软件界抗把子,一个是硬件大佬。三者共同发起了==Multics计划==。

  6. 也许是因为名字取得不好,又或者是工程师们太看中Multics了,什么功能都想往Multics上面加,导致研究到一半。发现Multics成为了一个巨大的“四不像”。功能太过复杂,加上计划落后,资金短缺等原因。贝尔实验室率先退出了该项目。

(2) 小型File server System

虽然贝尔实验室率先退出了Multics计划,但是原本参与计划的肯 汤姆森却有了一些自己的想法。大佬汤姆森因为自身的需要,就准备在公司的一台PDP-7上针对主机进行操作系统内核的编写。

  1. 系统内核的组成主要包括三个部分:

    1. 创建代码的编辑器, 将代码转化为机器语言的汇编器
    2. 内核的外层
    3. 经过三个星期的奋斗,他终于以汇编语言写出了一组内核程序,同时包括一些内核工具程序,以及一个小小的文件系统,这个就是==Unix的原型系统==(或者叫雏形系统)。
  2. 第一版系统: 1969年末。第一版具有明确Unix特征的操作系统已可以正常运行。

  3. 该文件系统的两个重要的概念:

    • 所有的程序或者系统设备都是文件

    • 不管程序本身还是附属文件,所写的程序只有一个目的,那就是有效地完成目标。

    • 这对后来Linux的发展有着举足轻重的影响。

(3) Unix正式诞生

  1. ==系统的缺陷==

    由于汤姆森的那个操作系统实在是太好用了,所以在贝尔实验室内广为流传。但由于汤姆森是使用==汇编语言==来书写的操作系统,由于汇编语言具有==专一性==,再加上当时的计算机架构都不太相同,所以每次使用都需要安装到不同的机器都需要==重新编写==汇编语言,极其不方便。

  2. Unix的正式版的诞生

    于是==汤姆森==与==里奇==两人就想着合作把Unix的雏形操作系统用高级语言来编写。当时现成的高级语言有B语言,但是由于B语言编写的内核性能并不高,后来里奇将B语言重新改写,成为了C语言(据说当时给C取了个新名字叫new B,这么看来取名也是一种哲学,C语言确实NB)。再将C语言重新改写并编译了那个系统的内核,最后命名并发行了Unix的正式版。

  3. ==Unix的优势==

    由于Unix是以高级语言C语言来编写的,相对于汇编语言来说,C语言与硬件的相关性没有那么大。所以这个改变使得Unix很容易被移植到不同的机器上面。

(4) BSD诞生——Unix的重要分支

  1. 开源的Unix

    虽然贝尔实验室中诞生了==Unix==,但是由于其母公司对于Unix采取==开放态度==,再加上由于是以C语言这一高级语言编写内核的,理论上是具有可移植性的。即只需要取得Unix的源代码,并且针对大型主机的特性加以定制原有的源代码,就可能将Unix移植到另一台主机上,所以1973年之后,Unix便得以与学术界合作开发,其中最重要的接触就是与加州伯克利大学的合作。

  2. Unix的一个重要分支BSD

    • BSD的创造者是==比尔 乔伊==,当时的他是加州大学的一名研究生。
    • 比尔 乔伊在取得源码之后,便着手修改了Unix的内核源代码,将其修改成为适合自己机器的版本,并同时增加了许多的==工具软件==和==编译器==。最终将其命名为“Berkeley Software Distribution”(BSD)。
    • 比尔 乔伊就是后来的==Sun==公司的创办者(Sun公司最突出的一个成就就是发明了Java这门语言。但后来因为各种原因,Sun最终被Oracle甲骨文收购)。Sun公司就是以BSD开发的内核进行自己的商业Unix版本的开发。

(5) System V架构与版权声明

  1. 定制的Unix系统

    由于==Unix==高度的==可移植性==与强大的性能,加上当时并没有很多的==版权纠纷==,一时之间,很多的商业公司都开始了Unix操作系统的开发,如果==System V==,==IBM==的AIX等都推出了自家的主机搭配自己的Unix操作系统。

  2. 定制Unix系统的==限制性==

    但是由于操作系统的内核必须要与硬件配合,与提供及控制硬件的资源进行良好的工作。在早期各家商业公司都没有所谓的协议的概念,导致各家虽然都有自己的操作系统,但是都无法在其他公司的硬件上良好地运行。

    • 并且就与如今的个人计算机相比,由于早期的厂商并没有==针对个人计算机设计Unix系统==,所以当时是没有支持个人计算机的Unix操作系统的。
    • 尽管如此,虽然每家公司自己的操作系统与其他公司的系统在==架构上大同小异==,但是却仅仅是==只能支持自身的硬件==。
  3. System V==第七版Unix== 到了1979年,AT&T(贝尔实验室隶属于该公司)退出System V第七版Unix后,这样的情况有了很大的改善,这一版最重要的特色在于可以==支持X86架构的个人计算机==。(即System V可以在个人计算机上安装与运行)

  4. System V第七版Unix不对学生开发

    出于商业的考虑,AT&T想将Unix的版权收回,因此在1979年发布的第七版中特别注明了不可对学生提供源代码的严格限制,这也为后来的Minix系统的诞生埋下了伏笔。

  5. 就目前而言,纯种的Unix指的就是==System V==与==BSD==这两套软件。

(6) Minix系统诞生

  1. 版本问题导致的问题

    由于1979年的版权问题,毫无疑问,影响最大的就是学校教授Unix内核源代码相关知识的教授了。因为如果Unix的源代码被限制了,如何才能让学生认识Unix呢?

  2. Minix的诞生

这一切对于安德鲁塔嫩鲍姆教授(Minix创造者)来说真的是个头疼的问题。不过大学的课程并不会因为困境而就停滞。安德鲁教授想,既然1979年的新版本可以移植到X86架构的计算机上,那么是否意味着Unix也可以移植到X86架构的机器上呢?于是安德鲁教授便完全不参照Unix源码(据说是为了避免版权纠纷问题),动手自己写了一个Unix-like的内核程序。并强调该程序可以与Unix兼容,于是==Minix==正式诞生!

  1. MInix的用途

这个Minix比较有趣的是并不是完全免费的,并且无法在网络上提供下载,必须要通过磁带或者磁盘购买才行。并且由于诞生的背景,MInix主要用于教育,并不适用于商业用途,也就没有之前的那些操作系统那么出名,甚至只有很少的一部分人知道。

三、GNU计划与FSF基金会

(一)什么是GNU计划与FSF基金会

  1. GNU计划

GNU计划,又译为“革奴计划”,是由理==查德·斯托曼==在1983年9月27日公开发起的==自由软件集体协作计划==。它的目标是创建一套完全自由的操作系统GNU。这个计划的目的是:建立一个自由、开放的操作系统

  1. 免费的GNU软件

    但是建立一个操作系统又谈何容易呢?聪明的==斯托曼==想到了可以先编写在==Unix==上运行的小程序,并且这个小程序的源代码绝对必须是原创的,避免吃上官司。后来很多的人知道了免费的GNU软件,并且实际使用之后的效果与付费软件相差不大,于是很多都转向了GNU软件了。于是GNU逐渐打开了知名度

  2. GCC编译器

    虽然GNU计划打开了知名度,但是能见度仍然不够,并且不论是什么软件都必须编译成二进制文件之后才可以执行。于是斯托曼想到可以编写一个不错的编译器,这就是==GCC==( GNU C Compiler),这款编译器不仅功能强大,并且免费,这更加扩大了GUN计划的知名度。

  3. Bash Shell

    后来托斯曼凭借自己编写的编辑器出售挣了点钱,进而开始全力编写其他的软件,进而建立了==自由软件基金会==(FSF),请更多的工程师与志愿者编写软件。并最终完成了GCC。此外他还编写了很多的可以被调用的C函数库和可以被用来运行操作系统的==基本接口==Bash Shell

(二)GNU通用公共许可证(GPL)

  1. 公共许可证GPL

到1985年,为了避免GNU所开发的==自由软件==被其他人利用而成为专利软件,所以托斯曼与律师共同起草了有名的通用公共许可证(GPL)。

  1. GNU的几个重要软件

    这里需要特别指出的是由GNU开发出来的几个重要的软件(后续的很多的软件开发者可以利用这些基础工具来进行程序开发):

    • Emacs
    • GNU C Compiler(gcc)
    • GNU C Library(glibc)
    • Bash Shell

(三)图形用户界面模式XFree86计划

鉴于图形用户接口(Graphical User Interface)的需求日益高涨,1984年由MIT和其他第三方首次发表了==X Window System==(注意要区别于微软的Windows)。并在1988年成立了非营利组织==XFree86==这个组织。所谓的XFree86是X Window System+Free+X86的整合名称

四、Linux操作系统

(一) Linux简单概述

  1. Linux的作者是Linus Torvalds(林纳斯·托瓦兹),不过他当时是以玩的心态设计了这一套系统,就连Linus本人也曾说自己原本做着玩的东西竟然会变得这么流行

  2. 林纳斯·托瓦兹介绍

    • 是世界顶级黑客之一

    • 十一岁左右,林纳斯一发不可收拾地爱上了计算机。

    • 当林纳斯22岁开发出Linux的时候,他其实早已跟计算机打了十几年交道了。

    • 开发git代码管理工具

      2002 年,Linux 内核开发团队开始采用 BitKepper(BitMover 公司) 作为==代码版本管理工具==(并不是自由软件), 暂时对 Linux 等开源软件团队免费,并不是自由软件。2005 年BitMover 公司不再免费赞助 Linux 开发团队。对此林纳斯表示非常遗憾,但遗憾之后他并没有自怨自艾伤心落泪,而是愤怒地与其他几个小伙伴花了几个星期完成了一套新的分布式代码管理工具,命名为 Git。

    • 被乔布斯相中的人, 邀请其加入苹果, 然而拒绝了林纳斯邀请

    • 1999年,林纳斯变成了千万富翁。

    • 2004年,他被《时代周刊》评为世界最有影响力的人之一。

    • 受聘于开放源代码开发实验室, 2003年,林纳斯辞职,致力于Linux和相关开源运动的发展。

(二) Linux主要特性

接下来说说Linux的主要特性:

(1) 基本思想:

Linux的基本思想有两点:

第一,==一切都是文件;==

第二,==每个文件都有确定的用途。==

(2) 完全免费:

Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。

(3) 完全兼容POSIX1.0标准

这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。

(4) 多用户、多任务

Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现代电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。

(5) 良好的界面

Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。

(6) 支持多种平台

Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel64位芯片架构。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

(三) Linux的优点

  1. Linux由众多微内核组成,其源代码完全开源;

  2. Linux继承了Unix的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括TCP/IPv4、TCP/IPv6和链路层拓扑程序等,且可以利用Unix的网络特性开发出新的协议栈;

  3. Linux系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;

(五) window系统

  1. window11
  2. window10
  3. window8
  4. win7
  5. winxp
  6. win me
  7. win98
  8. win95
  9. dos
  10. 服务器系统
    • wind2000
    • win2003
    • ........